<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>SystemSharp: InlineConcat.cs Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">SystemSharp
   &#160;<span id="projectnumber">0.3</span>
   </div>
   <div id="projectbrief">A system-level modeling framework for designing real-time embedded systems</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_inline_concat_8cs_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Events</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">InlineConcat.cs</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_inline_concat_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">using</span> System;</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">using</span> System.Collections.Generic;</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">using</span> System.Linq;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">using</span> System.Text;</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">using</span> SystemSharp.Assembler;</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">using</span> SystemSharp.Collections;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">using</span> SystemSharp.Components.FU;</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">using</span> SystemSharp.Components.Transactions;</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">using</span> SystemSharp.DataTypes;</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">using</span> SystemSharp.Meta;</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">using</span> SystemSharp.Synthesis;</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">using</span> SystemSharp.SysDOM;</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">namespace </span>SystemSharp.Components.Std</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html">   41</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html">InlineConcatMapper</a>: <a class="code" href="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapper.html">IXILMapper</a></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    {</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <span class="keyword">private</span> <span class="keyword">class </span>InlineConcatMapperTransactionSite : <a class="code" href="class_system_sharp_1_1_components_1_1_transactions_1_1_default_transaction_site.html">DefaultTransactionSite</a></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        {</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <span class="keyword">private</span> <span class="keyword">class </span>ConcatProcessBuilder : <a class="code" href="class_system_sharp_1_1_sys_d_o_m_1_1_algorithm_template.html">AlgorithmTemplate</a></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            {</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                <span class="keyword">private</span> InlineConcatMapperTransactionSite _taSite;</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keyword">public</span> ConcatProcessBuilder(InlineConcatMapperTransactionSite taSite)</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                {</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                    _taSite = taSite;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                }</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                <span class="keyword">protected</span> <span class="keyword">override</span> <span class="keywordtype">void</span> DeclareAlgorithm()</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                {</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                    var inSrs = _taSite._inSignals.Select(s =&gt; SignalRef.Create(s.Descriptor, SignalRef.EReferencedProperty.Cur));</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                    var inLrs = inSrs.Select(s =&gt; (<a class="code" href="class_system_sharp_1_1_sys_d_o_m_1_1_expression.html">Expression</a>)<span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_sys_d_o_m_1_1_literal_reference.html">LiteralReference</a>(s));</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                    var concat = inLrs.Aggregate((e1, e2) =&gt; <a class="code" href="class_system_sharp_1_1_sys_d_o_m_1_1_expression.html">Expression</a>.<a class="code" href="class_system_sharp_1_1_sys_d_o_m_1_1_expression.html#a1abb25a9c2106190ddc3a5c28ddacc1a">Concat</a>(e1, e2));</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                    var outSr = SignalRef.Create(_taSite._outSignal.Descriptor, SignalRef.EReferencedProperty.Next);</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                    Store(outSr, concat);</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                }</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;            }</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;            <span class="keyword">private</span> <span class="keywordtype">int</span>[] _argWidths;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keyword">private</span> <a class="code" href="class_system_sharp_1_1_components_1_1_s_l_v_signal.html">SLVSignal</a>[] _inSignals;</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            <span class="keyword">private</span> <a class="code" href="class_system_sharp_1_1_components_1_1_s_l_v_signal.html">SLVSignal</a> _outSignal;</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <span class="keyword">private</span> <span class="keywordtype">bool</span> _realized;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            <span class="keyword">public</span> InlineConcatMapperTransactionSite(<a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html">InlineConcatMapper</a> mapper, <a class="code" href="class_system_sharp_1_1_components_1_1_component.html">Component</a> host, <span class="keywordtype">int</span>[] argWidths) :</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                base(host)</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            {</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                _argWidths = argWidths;</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;            }</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="keyword">public</span> <span class="keywordtype">int</span>[] ArgWidths</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            {</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> _argWidths; }</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;            }</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keyword">public</span> IEnumerable&lt;TAVerb&gt; Concat(<a class="code" href="interface_system_sharp_1_1_components_1_1_i_signal_source.html">ISignalSource&lt;StdLogicVector&gt;</a>[] operands, ISignalSink&lt;StdLogicVector&gt; result)</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            {</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                var inps = _inSignals.Select((s, i) =&gt; s.Drive(operands[i]));</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                var outps = Enumerable.Repeat(result.Comb.Connect(_outSignal.AsSignalSource&lt;<a class="code" href="struct_system_sharp_1_1_data_types_1_1_std_logic_vector.html">StdLogicVector</a>&gt;()), 1);</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                yield <span class="keywordflow">return</span> Verb(<a class="code" href="namespace_system_sharp_1_1_components_1_1_transactions.html#a37047fc12d96eef7c393beb3705ad17c">ETVMode</a>.Locked, inps.Concat(outps).ToArray());</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            }</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <span class="keyword">public</span> <span class="keyword">override</span> IEnumerable&lt;TAVerb&gt; DoNothing()</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            {</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                var inps = _inSignals.Select(s =&gt; s.Stick(StdLogicVector.DCs(s.InitialValue.Size)));</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                yield <span class="keywordflow">return</span> Verb(<a class="code" href="namespace_system_sharp_1_1_components_1_1_transactions.html#a37047fc12d96eef7c393beb3705ad17c">ETVMode</a>.Locked, inps.ToArray());</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            }</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Establish(<a class="code" href="interface_system_sharp_1_1_components_1_1_i_auto_binder.html">IAutoBinder</a> binder)</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            {</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                <span class="keywordflow">if</span> (_realized)</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                _inSignals = _argWidths.Select((w, i) =&gt; </div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                    (<a class="code" href="class_system_sharp_1_1_components_1_1_s_l_v_signal.html">SLVSignal</a>)binder.GetSignal(EPortUsage.Default, <span class="stringliteral">&quot;concat&quot;</span> + i, null,</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;                    StdLogicVector.Us(w))).ToArray();</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                <span class="keywordtype">int</span> total = _argWidths.Sum();</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                _outSignal = (<a class="code" href="class_system_sharp_1_1_components_1_1_s_l_v_signal.html">SLVSignal</a>)binder.<a class="code" href="interface_system_sharp_1_1_components_1_1_i_auto_binder.html#a32bd73974677df25d852ad049ce211a6">GetSignal</a>(<a class="code" href="namespace_system_sharp_1_1_components.html#ad268018ef23fa93dc0631786a118b530">EPortUsage</a>.Default, <span class="stringliteral">&quot;concout&quot;</span>, null, <a class="code" href="struct_system_sharp_1_1_data_types_1_1_std_logic_vector.html">StdLogicVector</a>.<a class="code" href="struct_system_sharp_1_1_data_types_1_1_std_logic_vector.html#a9172f70c06d08de75a701bede5e5e7e4">Us</a>(total));</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                var pb = <span class="keyword">new</span> ConcatProcessBuilder(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                var alg = pb.GetAlgorithm();</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                alg.Name = <span class="stringliteral">&quot;concatenize&quot;</span>;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                binder.CreateProcess(Process.EProcessKind.Triggered, alg, _inSignals.Select(s =&gt; s.Descriptor).ToArray());</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                _realized = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            }</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        }</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keyword">private</span> <span class="keyword">class </span>KeyClass</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        {</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <span class="keyword">private</span> <span class="keywordtype">int</span>[] _widths;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            <span class="keyword">public</span> KeyClass(<span class="keywordtype">int</span>[] widths)</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            {</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                _widths = widths;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            }</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> Equals(<span class="keywordtype">object</span> obj)</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                var other = obj as KeyClass;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                <span class="keywordflow">if</span> (other == null)</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                <span class="keywordflow">return</span> _widths.SequenceEqual(other._widths);</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> GetHashCode()</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            {</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="keywordflow">return</span> _widths.GetSequenceHashCode();</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            }</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        }</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keyword">private</span> <span class="keyword">class </span>ConcatMapping : <a class="code" href="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapping.html">IXILMapping</a></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        {</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            <span class="keyword">private</span> InlineConcatMapperTransactionSite _taSite;</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            <span class="keyword">public</span> ConcatMapping(InlineConcatMapperTransactionSite taSite)</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            {</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                _taSite = taSite;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            }</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            <span class="keyword">public</span> <a class="code" href="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_transaction_site.html">ITransactionSite</a> TASite</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;            {</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> _taSite; }</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            }</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            <span class="keyword">public</span> <a class="code" href="namespace_system_sharp_1_1_components_1_1_f_u.html#afd158cd4625a9673e1404e27e7ffdb23">EMappingKind</a> ResourceKind</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            {</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> EMappingKind.LightweightResource; }</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            <span class="keyword">public</span> <span class="keywordtype">int</span> InitiationInterval</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            {</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> 1; }</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            }</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <span class="keyword">public</span> <span class="keywordtype">int</span> Latency</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            {</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> 1; }</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            }</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            <span class="keyword">public</span> IEnumerable&lt;TAVerb&gt; Realize(<a class="code" href="interface_system_sharp_1_1_components_1_1_i_signal_source.html">ISignalSource&lt;StdLogicVector&gt;</a>[] operands, ISignalSink&lt;StdLogicVector&gt;[] results)</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            {</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keywordflow">return</span> _taSite.Concat(operands, results[0]);</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            }</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            <span class="keyword">public</span> <span class="keywordtype">string</span> Description</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            {</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keyword">get</span> { <span class="keywordflow">return</span> <span class="stringliteral">&quot;(&quot;</span> + string.Join(<span class="stringliteral">&quot;/&quot;</span>, _taSite.ArgWidths) + <span class="stringliteral">&quot;) bit concat&quot;</span>; }</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            }</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        }</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#aa72536cb51d7f21a9c0ce752ef6f122b">  177</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#aa72536cb51d7f21a9c0ce752ef6f122b">InlineConcatMapper</a>()</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        {</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        }</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#ab0d0dc9049e6e280e8fba3091b02a9f6">  184</a></span>&#160;        <span class="keyword">public</span> IEnumerable&lt;XILInstr&gt; <a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#ab0d0dc9049e6e280e8fba3091b02a9f6">GetSupportedInstructions</a>()</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        {</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            yield <span class="keywordflow">return</span> DefaultInstructionSet.Instance.Concat();</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a107048d629c7b0b6a69d2552360938f7">  189</a></span>&#160;        <span class="keyword">public</span> IEnumerable&lt;IXILMapping&gt; <a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a107048d629c7b0b6a69d2552360938f7">TryMap</a>(<a class="code" href="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_transaction_site.html">ITransactionSite</a> taSite, <a class="code" href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html">XILInstr</a> instr, <a class="code" href="class_system_sharp_1_1_meta_1_1_type_descriptor.html">TypeDescriptor</a>[] operandTypes, <a class="code" href="class_system_sharp_1_1_meta_1_1_type_descriptor.html">TypeDescriptor</a>[] resultTypes)</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        {</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            var fu = taSite.Host;</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            <span class="keywordflow">if</span> (instr.<a class="code" href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html#ac1be110ff484ec0078a5ccc572d463bd">Name</a> != <a class="code" href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html">InstructionCodes</a>.<a class="code" href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html#aa309fa37ba83a6b09ff9e226c1288481">Concat</a>)</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                yield <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;            <span class="keywordtype">int</span>[] inWidths = operandTypes.Select(t =&gt; Marshal.SerializeForHW(t.GetSampleInstance()).Size).ToArray();</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            var key = <span class="keyword">new</span> KeyClass(inWidths);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            var taCM = taSite as InlineConcatMapperTransactionSite;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            <span class="keywordflow">if</span> (taCM == null)</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                yield <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;            <span class="keywordflow">if</span> (!taCM.ArgWidths.SequenceEqual(inWidths))</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;                yield <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            yield <span class="keywordflow">return</span> <span class="keyword">new</span> ConcatMapping(taCM);</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        }</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a0f869d4896379275b6b056bfae9ba806">  205</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapping.html">IXILMapping</a> <a class="code" href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a0f869d4896379275b6b056bfae9ba806">TryAllocate</a>(<a class="code" href="class_system_sharp_1_1_components_1_1_component.html">Component</a> host, <a class="code" href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html">XILInstr</a> instr, <a class="code" href="class_system_sharp_1_1_meta_1_1_type_descriptor.html">TypeDescriptor</a>[] operandTypes, <a class="code" href="class_system_sharp_1_1_meta_1_1_type_descriptor.html">TypeDescriptor</a>[] resultTypes, <a class="code" href="interface_system_sharp_1_1_synthesis_1_1_i_project.html">IProject</a> targetProject)</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        {</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;            <span class="keywordflow">if</span> (instr.<a class="code" href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html#ac1be110ff484ec0078a5ccc572d463bd">Name</a> != <a class="code" href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html">InstructionCodes</a>.<a class="code" href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html#aa309fa37ba83a6b09ff9e226c1288481">Concat</a>)</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <span class="keywordflow">return</span> null;</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;            <span class="keywordtype">int</span>[] inWidths = operandTypes.Select(t =&gt; Marshal.SerializeForHW(t.GetSampleInstance()).Size).ToArray();</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            var key = <span class="keyword">new</span> KeyClass(inWidths);</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            InlineConcatMapperTransactionSite taSite = </div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                <span class="keyword">new</span> InlineConcatMapperTransactionSite(<span class="keyword">this</span>, host, inWidths);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">new</span> ConcatMapping(taSite);</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        }</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    }</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;}</div>
<div class="ttc" id="namespace_system_sharp_1_1_components_1_1_transactions_html_a37047fc12d96eef7c393beb3705ad17c"><div class="ttname"><a href="namespace_system_sharp_1_1_components_1_1_transactions.html#a37047fc12d96eef7c393beb3705ad17c">SystemSharp.Components.Transactions.ETVMode</a></div><div class="ttdeci">ETVMode</div><div class="ttdoc">The mode of a transaction verb </div><div class="ttdef"><b>Definition:</b> <a href="_transactions_8cs_source.html#l00033">Transactions.cs:33</a></div></div>
<div class="ttc" id="struct_system_sharp_1_1_data_types_1_1_std_logic_vector_html"><div class="ttname"><a href="struct_system_sharp_1_1_data_types_1_1_std_logic_vector.html">SystemSharp.DataTypes.StdLogicVector</a></div><div class="ttdoc">Represents a vector of four-valued logic, similiar to IEEE 1164. </div><div class="ttdef"><b>Definition:</b> <a href="_std_logic_lib_8cs_source.html#l00783">StdLogicLib.cs:783</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper_html_a0f869d4896379275b6b056bfae9ba806"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a0f869d4896379275b6b056bfae9ba806">SystemSharp.Components.Std.InlineConcatMapper.TryAllocate</a></div><div class="ttdeci">IXILMapping TryAllocate(Component host, XILInstr instr, TypeDescriptor[] operandTypes, TypeDescriptor[] resultTypes, IProject targetProject)</div><div class="ttdoc">Allocates a new hardware functional unit for XIL instruction instr  and returns a mapping to it...</div><div class="ttdef"><b>Definition:</b> <a href="_inline_concat_8cs_source.html#l00205">InlineConcat.cs:205</a></div></div>
<div class="ttc" id="struct_system_sharp_1_1_data_types_1_1_std_logic_vector_html_a9172f70c06d08de75a701bede5e5e7e4"><div class="ttname"><a href="struct_system_sharp_1_1_data_types_1_1_std_logic_vector.html#a9172f70c06d08de75a701bede5e5e7e4">SystemSharp.DataTypes.StdLogicVector.Us</a></div><div class="ttdeci">static StdLogicVector Us(long count)</div><div class="ttdoc">Returns a logic vector which consists of logic &#39;U&#39;s of a specified length </div><div class="ttdef"><b>Definition:</b> <a href="_std_logic_lib_8cs_source.html#l00860">StdLogicLib.cs:860</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_sys_d_o_m_1_1_expression_html"><div class="ttname"><a href="class_system_sharp_1_1_sys_d_o_m_1_1_expression.html">SystemSharp.SysDOM.Expression</a></div><div class="ttdoc">An expression. </div><div class="ttdef"><b>Definition:</b> <a href="_core_algebraic_8cs_source.html#l01096">CoreAlgebraic.cs:1096</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper_html_ab0d0dc9049e6e280e8fba3091b02a9f6"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#ab0d0dc9049e6e280e8fba3091b02a9f6">SystemSharp.Components.Std.InlineConcatMapper.GetSupportedInstructions</a></div><div class="ttdeci">IEnumerable&lt; XILInstr &gt; GetSupportedInstructions()</div><div class="ttdoc">Returns concat </div><div class="ttdef"><b>Definition:</b> <a href="_inline_concat_8cs_source.html#l00184">InlineConcat.cs:184</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_transactions_1_1_default_transaction_site_html"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_transactions_1_1_default_transaction_site.html">SystemSharp.Components.Transactions.DefaultTransactionSite</a></div><div class="ttdoc">An abstract base implementation of transaction site interface </div><div class="ttdef"><b>Definition:</b> <a href="_transactions_8cs_source.html#l00224">Transactions.cs:224</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapping_html"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapping.html">SystemSharp.Components.FU.IXILMapping</a></div><div class="ttdoc">Describes a mapping of a XIL instruction to a hardware functional unit, represented by a transaction ...</div><div class="ttdef"><b>Definition:</b> <a href="_functional_components_8cs_source.html#l00038">FunctionalComponents.cs:38</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper_html_a107048d629c7b0b6a69d2552360938f7"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#a107048d629c7b0b6a69d2552360938f7">SystemSharp.Components.Std.InlineConcatMapper.TryMap</a></div><div class="ttdeci">IEnumerable&lt; IXILMapping &gt; TryMap(ITransactionSite taSite, XILInstr instr, TypeDescriptor[] operandTypes, TypeDescriptor[] resultTypes)</div><div class="ttdoc">Tries to map XIL instruction instr  to transaction site taSite . </div><div class="ttdef"><b>Definition:</b> <a href="_inline_concat_8cs_source.html#l00189">InlineConcat.cs:189</a></div></div>
<div class="ttc" id="namespace_system_sharp_1_1_components_html_ad268018ef23fa93dc0631786a118b530"><div class="ttname"><a href="namespace_system_sharp_1_1_components.html#ad268018ef23fa93dc0631786a118b530">SystemSharp.Components.EPortUsage</a></div><div class="ttdeci">EPortUsage</div><div class="ttdoc">Usage class of a port </div><div class="ttdef"><b>Definition:</b> <a href="_components_attributes_8cs_source.html#l01041">ComponentsAttributes.cs:1041</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_transaction_site_html"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_transactions_1_1_i_transaction_site.html">SystemSharp.Components.Transactions.ITransactionSite</a></div><div class="ttdoc">General transaction site interface </div><div class="ttdef"><b>Definition:</b> <a href="_transactions_8cs_source.html#l00195">Transactions.cs:195</a></div></div>
<div class="ttc" id="namespace_system_sharp_1_1_components_1_1_f_u_html_afd158cd4625a9673e1404e27e7ffdb23"><div class="ttname"><a href="namespace_system_sharp_1_1_components_1_1_f_u.html#afd158cd4625a9673e1404e27e7ffdb23">SystemSharp.Components.FU.EMappingKind</a></div><div class="ttdeci">EMappingKind</div><div class="ttdoc">Provides a classification of hardware resources </div><div class="ttdef"><b>Definition:</b> <a href="_functional_components_8cs_source.html#l00163">FunctionalComponents.cs:163</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_assembler_1_1_instruction_codes_html"><div class="ttname"><a href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html">SystemSharp.Assembler.InstructionCodes</a></div><div class="ttdoc">All XIL opcodes </div><div class="ttdef"><b>Definition:</b> <a href="_instruction_set_8cs_source.html#l00036">InstructionSet.cs:36</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_sys_d_o_m_1_1_expression_html_a1abb25a9c2106190ddc3a5c28ddacc1a"><div class="ttname"><a href="class_system_sharp_1_1_sys_d_o_m_1_1_expression.html#a1abb25a9c2106190ddc3a5c28ddacc1a">SystemSharp.SysDOM.Expression.Concat</a></div><div class="ttdeci">static Expression Concat(Expression e1, Expression e2)</div><div class="ttdoc">Constructs an expression that represents the concatenation operator. </div><div class="ttdef"><b>Definition:</b> <a href="_core_algebraic_8cs_source.html#l01843">CoreAlgebraic.cs:1843</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_i_signal_source_html"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_i_signal_source.html">SystemSharp.Components.ISignalSource</a></div><div class="ttdoc">A signal source is a &quot;more flexible&quot; signal. It has a sensitivity, a function which provides the curr...</div><div class="ttdef"><b>Definition:</b> <a href="_process_core_8cs_source.html#l00096">ProcessCore.cs:96</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapper_html"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_f_u_1_1_i_x_i_l_mapper.html">SystemSharp.Components.FU.IXILMapper</a></div><div class="ttdoc">Describes a service which maps XIL instructions to hardware functional units </div><div class="ttdef"><b>Definition:</b> <a href="_functional_components_8cs_source.html#l00184">FunctionalComponents.cs:184</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_meta_1_1_type_descriptor_html"><div class="ttname"><a href="class_system_sharp_1_1_meta_1_1_type_descriptor.html">SystemSharp.Meta.TypeDescriptor</a></div><div class="ttdoc">Describes a type. </div><div class="ttdef"><b>Definition:</b> <a href="_type_descriptor_8cs_source.html#l00120">TypeDescriptor.cs:120</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_s_l_v_signal_html"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_s_l_v_signal.html">SystemSharp.Components.SLVSignal</a></div><div class="ttdoc">A signal which carries logic vectors. </div><div class="ttdef"><b>Definition:</b> <a href="_std_logic_lib_8cs_source.html#l02323">StdLogicLib.cs:2323</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper_html_aa72536cb51d7f21a9c0ce752ef6f122b"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html#aa72536cb51d7f21a9c0ce752ef6f122b">SystemSharp.Components.Std.InlineConcatMapper.InlineConcatMapper</a></div><div class="ttdeci">InlineConcatMapper()</div><div class="ttdoc">Constructs a new instance. </div><div class="ttdef"><b>Definition:</b> <a href="_inline_concat_8cs_source.html#l00177">InlineConcat.cs:177</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_sys_d_o_m_1_1_algorithm_template_html"><div class="ttname"><a href="class_system_sharp_1_1_sys_d_o_m_1_1_algorithm_template.html">SystemSharp.SysDOM.AlgorithmTemplate</a></div><div class="ttdoc">An abstract algorithm builder implementation where the actual algorithm construction is done inside t...</div><div class="ttdef"><b>Definition:</b> <a href="_algorithms_8cs_source.html#l02406">Algorithms.cs:2406</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_assembler_1_1_instruction_codes_html_aa309fa37ba83a6b09ff9e226c1288481"><div class="ttname"><a href="class_system_sharp_1_1_assembler_1_1_instruction_codes.html#aa309fa37ba83a6b09ff9e226c1288481">SystemSharp.Assembler.InstructionCodes.Concat</a></div><div class="ttdeci">const string Concat</div><div class="ttdoc">Concatenation </div><div class="ttdef"><b>Definition:</b> <a href="_instruction_set_8cs_source.html#l00076">InstructionSet.cs:76</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper_html"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_std_1_1_inline_concat_mapper.html">SystemSharp.Components.Std.InlineConcatMapper</a></div><div class="ttdoc">A service for mapping the &quot;concat&quot; (bit-vector concatenation) XIL instruction to hardware. The service does not instantiate any extra component. Instead, the necessary code is directly inserted into the hosting component. It is supported to concatenate arbitrarily many signals with different bit-widths. </div><div class="ttdef"><b>Definition:</b> <a href="_inline_concat_8cs_source.html#l00041">InlineConcat.cs:41</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_sys_d_o_m_1_1_literal_reference_html"><div class="ttname"><a href="class_system_sharp_1_1_sys_d_o_m_1_1_literal_reference.html">SystemSharp.SysDOM.LiteralReference</a></div><div class="ttdoc">A reference expression to a literal. </div><div class="ttdef"><b>Definition:</b> <a href="_core_algebraic_8cs_source.html#l02101">CoreAlgebraic.cs:2101</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_synthesis_1_1_i_project_html"><div class="ttname"><a href="interface_system_sharp_1_1_synthesis_1_1_i_project.html">SystemSharp.Synthesis.IProject</a></div><div class="ttdoc">Interface for project generators. </div><div class="ttdef"><b>Definition:</b> <a href="_synthesis_8cs_source.html#l00045">Synthesis.cs:45</a></div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_i_auto_binder_html_a32bd73974677df25d852ad049ce211a6"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_i_auto_binder.html#a32bd73974677df25d852ad049ce211a6">SystemSharp.Components.IAutoBinder.GetSignal</a></div><div class="ttdeci">ISignalOrPortDescriptor GetSignal(EBinderFlags flags, EPortUsage portUsage, string name, string domainID, object initialValue)</div><div class="ttdoc">Retrieves an existing or creates a new signal/port, depending on specified flags. ...</div></div>
<div class="ttc" id="interface_system_sharp_1_1_components_1_1_i_auto_binder_html"><div class="ttname"><a href="interface_system_sharp_1_1_components_1_1_i_auto_binder.html">SystemSharp.Components.IAutoBinder</a></div><div class="ttdoc">Binder service interface </div><div class="ttdef"><b>Definition:</b> <a href="_auto_binding_8cs_source.html#l00081">AutoBinding.cs:81</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_assembler_1_1_x_i_l_instr_html"><div class="ttname"><a href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html">SystemSharp.Assembler.XILInstr</a></div><div class="ttdoc">Models a XIL instruction </div><div class="ttdef"><b>Definition:</b> <a href="_asm_core_8cs_source.html#l00040">AsmCore.cs:40</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_components_1_1_component_html"><div class="ttname"><a href="class_system_sharp_1_1_components_1_1_component.html">SystemSharp.Components.Component</a></div><div class="ttdoc">The abstract base class for defining components. </div><div class="ttdef"><b>Definition:</b> <a href="_component_8cs_source.html#l00038">Component.cs:38</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_assembler_1_1_x_i_l_instr_html_ac1be110ff484ec0078a5ccc572d463bd"><div class="ttname"><a href="class_system_sharp_1_1_assembler_1_1_x_i_l_instr.html#ac1be110ff484ec0078a5ccc572d463bd">SystemSharp.Assembler.XILInstr.Name</a></div><div class="ttdeci">string Name</div><div class="ttdoc">Opcode </div><div class="ttdef"><b>Definition:</b> <a href="_asm_core_8cs_source.html#l00045">AsmCore.cs:45</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_bb5e995590685548b7e11478911ee7c3.html">SystemSharp-Google-SVN</a></li><li class="navelem"><a class="el" href="dir_8deefa4467a62b572b52d238d562b104.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_0e5a72156f8560bbc472a395da2569d6.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_9d3c30b4336bd92c64ccf0aeee487ace.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_2796d14d34df7db36a6563efa1efe523.html">Components</a></li><li class="navelem"><a class="el" href="dir_d22c77bd5e9ddc3c31a70405ed4e9843.html">Std</a></li><li class="navelem"><a class="el" href="_inline_concat_8cs.html">InlineConcat.cs</a></li>
    <li class="footer">Generated on Thu Dec 26 2013 14:21:40 for SystemSharp by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
